Wireless internet gateway

ABSTRACT

A wireless Internet gateway which bridges the gap between the Internet and wireless devices, e.g., via a short message service center (SMSC). The disclosed wireless Internet gateway provides a portal to SMPP, HTTP, TNPP, or other protocol messages using Java Remote Method Invocation (RMI) techniques. Application servers (e.g., in communication with the Internet or an Intranet) insert RMI objects containing messages in a message queue handler of the wireless Internet gateway. The RMI objects are queued and passed either directly to a destination delivery handler (e.g., SMPP, SMTP, HTTP or TNPP protocol handler), or passed through a generic destination interface to provide an additional layer of abstraction to simplify development of the support of other destination protocols. An SMTP handler may be integrated into the wireless Internet gateway to provide direct communication of SMTP protocol messages (i.e., e-mail) to the message queue.

This application is continuation of U.S. application Ser. No.09/630,762, to SMITH, entitled “Wireless Internet Gateway,” filed onAug. 2, 2000 now U.S. Pat. No. 7,228,333; which in turn claims priorityfrom U.S. Provisional Appl. No. 60/196,367, to SMITH, entitled “WirelessInternet Gateway,” filed on Apr. 12, 2000, the entirety of both of whichare expressly incorporated herein by reference.

BACKGROUND OF THE INVENTION

1. Field of the Invention

This invention relates generally to wireless carriers, Internet serviceproviders (ISPs), and information content delivery services/providers.More particularly, it relates to wireless telecommunications andwireless portals for routing messages from mobile devices to Internetdestinations.

2. Background of Related Art

Short Message Service Centers (SMSCs) deliver short messages through awireless network. Typically they operate on highly valuable serverplatforms that are protected deep within a wireless carrier's network,and communicate via specialized protocols.

FIG. 11 shows a conventional gateway providing Internet access to awireless network through a short message service center (SMSC).

In particular, as shown in FIG. 11, a gateway 900 translates betweenHTTP protocol messages from the Internet 190 and SMPP protocol messagesto wireless devices in a wireless network 130 via an SMSC 120.

The gateway 900 provides a portal between wireless networks and theInternet 190. However, conventional portals between wireless networksand the Internet generally utilize either a proprietary operatingsystem, or are developed to operate on a single operating system, e.g.,WINDOWS NT™ or SOLARIS™. Moreover, conventional gateway 900 architectureprovides a communication path between fixed protocol types, e.g.,between HTTP protocol messages and SMPP protocol messages. Separategateway application programming interfaces (APIs) are developed tocommunicate with other protocol types.

For instance, to allow communications between an application server onthe Internet using HTTP protocol messages and a paging terminal usingTNPP protocol messages, a new gateway API must be developed frompoint-to-point from the HTTP interface to the TNPP interface. Thispresents a tremendous amount of development work necessary to supportnew network elements, particularly wireless network elements.

There is thus a need for a more flexible gateway architecture and methodwhich provides interface capability without the need for the totalredevelopment of separate gateways to support different types of messageprotocols.

BRIEF DESCRIPTION OF THE DRAWINGS

Features and advantages of the present invention will become apparent tothose skilled in the art from the following description with referenceto the drawings, in which:

FIG. 1 shows exemplary connectivity for a wireless Internet gateway, inaccordance with the principles of the present invention.

FIG. 2 shows an exemplary application programming interface (API) of awireless Internet gateway including a short message queuing mechanismand abstracted generic destination interface, in accordance with theprinciples of the present invention.

FIG. 3 shows the inclusion of an SNMP manager in a wireless Internetgateway and direct communication between wireless devices andapplication servers, in accordance with the principles of the presentinvention.

FIG. 4 shows exemplary log and configuration files utilized by awireless Internet gateway, in accordance with the principles of thepresent invention.

Table 1 shows an exemplary sample gateway configuration file for awireless Internet gateway, in accordance with the principles of thepresent invention.

FIG. 5 shows the provisioning capabilities of a wireless Internetgateway via a web page or from a remote wireless device, in accordancewith the principles of the present invention.

FIG. 6 shows exemplary wireless Internet gateway support of a simplemail transfer protocol (SMTP) mail server , in accordance with theprinciples of the present invention.

FIG. 7A shows an exemplary mail send/receipt process flow in thedirection from a wireless Internet gateway towards a wireless handset,in accordance with the principles of the present invention.

FIG. 7B shows an exemplary mail send/receipt process flow in thedirection from a wireless handset towards a wireless Internet gateway,in accordance with the principles of the present invention.

FIG. 8 shows a redundant configuration for wireless Internet gateways,in accordance with the principles of the present invention.

FIGS. 9A to 9C and 10A to 10C show an exemplary software modulehierarchy and relationships for a wireless Internet gateway 100implementing two-way messaging, in accordance with the principles of thepresent invention.

FIG. 9B illustrates how messages would flow in an SMTP environment.

FIG. 9C illustrates how messages would flow in an RMI scenario.

FIG. 11 shows a conventional gateway providing Internet access to awireless network through a short message service center (SMSC).

DETAILED DESCRIPTION OF ILLUSTRATIVE EMBODIMENTS

The present invention provides a wireless Internet gateway which bridgesthe gap between the Internet and wireless devices, e.g., via a shortmessage service center (SMSC). The disclosed architecture is modular,and provides a generic destination interface to any of a plurality ofdestination devices of any of a variety of protocols. This reducesredevelopment efforts to those required only between the genericdestination interface and the particular destination device, eliminatingthe need for redevelopment of the application programming interface(API) up to the generic destination interface.

In a particular disclosed embodiment the wireless Internet gatewayprovides a portal to SMPP protocol messages using RMI techniques.However, the present invention has applicability to portals or gatewaysproviding a communication path between RMI objects and any other type ofwireless network messaging protocol.

The disclosed embodiment of a wireless Internet gateway in accordancewith the principles of the present invention receives SMPP messages on awireless network side, translates those SMPP messages to RMI messageobjects, and re-transmits those RMI message objects to an applicationserver having access to the Internet (or Intranet) (e.g., to an E-mailserver, a chat server, voice messaging system, paging system, etc.). Thewireless Internet gateway utilizes common protocols (e.g., SMPP) toallow operation with existing standard conforming wireless networks.

In particular, the disclosed wireless Internet gateway is providedbetween the Internet using, e.g., HTTP protocols and a Short MessageService Center (SMSC) which communicates with wireless handsets over awireless network using, e.g., SMPP protocols.

Importantly, the wireless Internet gateway uses Java Remote MethodInvocation (RMI) techniques to communicate with relevant applicationservers using other transmission protocols of the Internet (or Intranet)(e.g., HTTP, SMTP relating to e-mail messages, etc.). The RMI techniquesinsert RMI message objects in the wireless Internet gateway, which arecommunicated to a generic destination interface. From the genericdestination interface the messages are packaged into relevant messagesof the particular destination protocol (e.g., SMPP), and transmitted tothe relevant network element (e.g., to an SMSC).

A wireless Internet gateway in accordance with the principles of thepresent invention effectively provides a shield for a wirelessprovider's short message service center (SMSC) from direct interactionwith Internet clients. This provides a more secure environment from theperspective of the wireless provider, and allows the wireless providerthe freedom to implement Internet access for wireless subscribers usingexisting otherwise non-Internet ready SMSCs.

The disclosed wireless Internet gateway is flexible in that it is easilydeveloped to support any input protocol (using RMI techniques with arelevant application server providing the particular input protocol),and any output protocol developed to package messages from RMI messageobjects passed to a generic destination interface into the particularoutput protocol.

The standard protocol commands utilized by the disclosed wirelessInternet gateway can be extended or added to software already existingin an SMSC or other appropriate element of a wireless system through theaddition of an appropriate Application Programming Interface (API).Moreover, the wireless Internet gateway can serve as a messagingmiddleware layer for other applications.

The wireless Internet gateway preferably is implemented so as to becapable of operating on a number of different platforms. One way ofaccomplishing this is by using software written in the Java programminglanguage. In this way, any operating system or hardware platform thatsupports the Java run time environment can be used to support a wirelessInternet gateway application. For instance, a wireless Internet gatewayapplication written in Java may be implemented on most operatingsystems, including Linux, HP-UX, Netware, Solaris (Intel and Sparc), andNT.

An important feature of the present invention is the use of Java RemoteMethod Invocation (RMI) technology to provide an interface to otherapplication servers, which in turn communicate over the Internet. Inthis way, application servers on the Internet are responsible forcommunicating over the Internet using other protocols (e.g., HTTP, SNMP,SMTP, etc.), or directly with a user. These application servers on theInternet each then communicate with a wireless Internet gatewayutilizing RMI techniques implemented in an appropriate gatewayApplication Programming Interface (API). The disclosed gateway API is acollection of Java classes and their methods which use Java RemoteMethod Invocation (RMI) technology to pass data between an applicationserver in communication with the Internet and the wireless Internetgateway.

Thus, in accordance with the principles of the present invention, aslong as an application server in communication with the Internetcommunicates with the wireless Internet gateway using RMI techniques,the application server is free to utilize any other protocol on itsfront end to communicate over the Internet.

FIG. 1 shows exemplary connectivity for a wireless Internet gateway, inaccordance with the principles of the present invention.

In particular, as shown in FIG. 1, a wireless Internet gateway 100together with appropriate application servers 110 a, 110 b, 110 c bridgethe gap between an off-the-shelf (OTS) short message service center(SMSC) 120 and the Internet 190.

The SMSC 120 communicates with network elements of a wireless network130. The SMSC 120 communicates with the wireless Internet gateway 100using standard SMPP protocol commands.

The wireless Internet gateway 100 in turn communicates with the Internetvia one or more appropriate application servers 110 a, 110 b, 110 cpreferably using a Java Remote Method Invocation (RMI) technique.

The application servers 110 a, 110 b, 110 c may utilize any appropriatefront end to communicate with other servers via the Internet 190. Forinstance, one application server 110 a may be configured to communicateover the Internet using HTTP protocols. HTTP protocols may beappropriate, e.g., when a wireless device in the wireless network 130desires to participate in a chat group hosted by a chat server 140 incommunication with the Internet 190. In such a case, the wirelessInternet gateway 100 will pass SMPP protocol messages with the SMSC 120,with utilize RMI techniques with the appropriate application server 110a, and the application server 110 a will translate the chat grouppostings into HTTP protocol messages for transmission via the Internet190 to the chat server 140.

Similarly, another application server may be configured with anappropriate application program to provide an SMTP front end presence onthe Internet 190 to the wireless Internet gateway 100. In this way,wireless devices in the wireless network 130 may send and receive E-mailusing SMPP protocol messages from the wireless network 130 to the SMSC120 and to the wireless Internet gateway 100, which are passed to theappropriate application server 110 b using RMI techniques, andtranslated by the application server 110 b to the requisite SMTPprotocol messages for transmission over the Internet 190.

Other application servers 110 c may provide other types of front ends incommunication with the Internet 190, e.g., SNMP.

The Internet front end protocol interfaces shown in FIG. 1 as beingprovided by application servers 110 a-110 c may alternatively beintegrated into the wireless Internet gateway 100. For instance, thewireless Internet gateway 100 may include appropriate applicationprograms and interfaces to provide an SMTP interface directly to theInternet 190, avoiding the need for a separate application server 110for that purpose.

Similarly, the wireless Internet gateway 100 may include integratedfront ends for HTTP and/or SNMP protocol communication links with theInternet 190. Moreover, the wireless Internet gateway 100 may interfacedirectly with a local chat server 177.

The wireless Internet gateway 100 may have multiple provisions in itsAPI for relaying data to and from the wireless devices in the wirelessnetwork 130 to the application servers 100. For instance, the wirelessInternet gateway 100 may implement a queuing technique that attemptsguaranteed delivery to a relevant wireless device through multipletransmissions if necessary. An example of a suitable application for thequeuing technique is E-mail.

FIG. 2 shows an exemplary application programming interface (API) of awireless Internet gateway including a short message queuing mechanismand abstracted generic destination interface, in accordance with theprinciples of the present invention.

In particular, as shown in FIG. 2, the wireless Internet gateway 100provides an RMI handler 230 for handling receipt of RMI objects from RMIclients 232 (i.e., application servers 110). The RMI objects areinserted into a queue handler 200 by the relevant application servers232. Using RMI techniques, the particular front end protocol is‘abstracted’ away from the wireless Internet gateway 100 API.

In addition to RMI objects, e-mail messages are processed by an SMTPhandler 240 as they are received and sent to Email application servers242

The queuing technique shown in FIG. 2 captures incoming messages into amessage queue 205. The messages come from either RMI objects from thefront end application servers 110, or as E-mail into a built-in mailserver front end function 240 of the wireless Internet gateway 100.Thus, E-mail messages from appropriate E-mail clients 242 on theInternet 190 are received and processed by an appropriate SMTP handler240, and passed on to a queue handler 200.

In the embodiment shown in FIG. 2, the wireless Internet gateway 100also includes a direct SMTP connection from a local application server110 d provided by an SMPP link proxy module 297. The SMPP link proxymodule 297 allows direct insertion and removal of SMPP formattedmessages into a SMPP delivery module 260.

The integrated SMPP link proxy module 297 may communicate with theexternal application server 110 d using any particular protocol. Forinstance, the SMPP link proxy module 297 may communicate with theexternal application server 110 d using RMI techniques. Alternatively,the SMPP link proxy module 297 may communicate with the applicationserver using, e.g., SMPP objects, etc. The application server may be,e.g., another wireless Internet gateway 100.

The SMPP link proxy module 297 is particularly useful for ‘listening’ toa particular port. A selected port can be monitored, and any/allmessages sent to that port can be captured by the SMPP link proxy module297, and passed to the local application server 100 d for, e.g.,printing, display, transmission via the Internet, etc.

The SMPP link proxy module 297 is optional. As shown, the SMPP linkproxy module 297 provides a mechanism for messages from the wirelessnetwork 130 to be passed to a particular application server 110 d, whilethe queue handler 200 is most efficient in passing messages fromapplication servers 232 or e-mail application servers to a wirelessdevice. However, the queue handler 200 can be implemented to handlemessages in both directions to and from mobile devices.

RMI objects inserted into the queue handler 200 by the RMI handler 230allows for a generic approach to the Internet side of the wirelessInternet gateway 100 separate from the particular protocol used (e.g.,HTTP), whereas the use of a direct link such as the SMPP link proxymodule 297 requires particular development and dedication to aparticular protocol, e.g., to SMPP as shown in FIG. 2. While RMItechniques can be utilized for multiple application servers 110utilizing any of a number of different types of protocols on its frontend, the direct technique dictates a protocol-specific implementation.

The queue handler 200 has access to a message cache directory 220, andto a messages database 210. When a message arrives its contents arestored in the message cache directory 220, and details about the messageare stored in the messages database 210.

Received messages are stored in the a message queue 205. The messagequeue 205 orders the messages in an appropriate fashion, e.g., by theirtime of arrival.

A queue monitor 250 in communication with the queue handler 200 and themessage queue 205 is responsible for removing a message from the messagequeue 205 and sending the same on to the SMSC 120 via an appropriateSMPP delivery application module 260.

If the SMSC 120 acknowledges receipt of the message, the message is thenremoved from the message cache directory 220 and marked as sent in themessages database 210. If, on the other hand, the SMSC 120 fails toacknowledge the message, the message is copied from the message cachedirectory 220 and placed back onto the message queue 205 for asubsequent retransmission at the appropriate time. In this fashion,messages are retransmitted until they are received.

A second exemplary provision of an API in a wireless Internet gateway100 is the establishment and integration of a direct connection from awireless Internet gateway to applications such as chat sessions. Inparticular, the wireless Internet gateway 100 may communicate directlywith a chat server using, e.g., RMI techniques.

The wireless Internet gateway 100 is capable of supporting features togive messages certain characteristics and/or to include particularinformation with a message. For instance, message priority, callbacknumbers and/or validity times may be included with messages handled bythe wireless Internet gateway 100.

In particular, messages can be given a priority. When a message has aparticular priority, the priority is signaled to the SMSC 10, which inturn will expedite its delivery.

Callback numbers may be inserted with a message by the wireless Internetgateway 100. Callback numbers provide a service which generally makes iteasier for a recipient to respond to a particular received message.

The wireless Internet gateway 100 may also mark messages with validitytimes. A validity time in a message allows a recipient to respondaccordingly.

When a response is received from the wireless device, the wirelessInternet gateway 100 passes the message directly to the applicationserver 100. This session occurs through RMI to provide for the additionof new direct communication servers such as chat servers and web pageinterfaces.

When a short message of any type arrives at the wireless Internetgateway 100, the short message is examined for its type and destination.The type and destination of the short message dictate how it is handled.

For instance, if the received short message is an acknowledgement of ashort message sent from the wireless Internet gateway 100, then areceipt acknowledgement of the short message is sent to the source ofthe short message. As another example, if the received short message isan E-mail destined for transmission over the Internet 190, then theE-mail message is passed to the relevant mobile E-mail applicationserver (e.g., to the integrated SMPT mail server 300 or to an externalSMTP application server 110 c), which in turn sends the E-mail messageto a mail relayer for ultimate transmission over the Internet 190.

In a like fashion, each short message received by the wireless Internetgateway 100 from a mobile device is sent to an appropriate (internallyintegrated or external) application server 110 for processing, e.g., toan HTTP server 110 a for transmission over the Internet 190, to an SMTPE-mail server 300 for transmission over the Internet 190, etc.

The queue monitor 250 may communicate directly to the SMPP deliverymodule 260 utilizing appropriate SMPP protocol messages. However, tofurther abstract the particular protocol requirements away from thewireless Internet gateway 100, a generic destination interface 271 maybe inserted between the queue monitor 250 (or other message source) andthe destination handler.

The generic destination interface 271 provides an interface between theparticular protocol on the destination side of the wireless Internetgateway 100 (e.g., SMPP as shown using the SMPP delivery module 260),and the messages in the message queue 205. In this way, adaptation toother protocols need change only the support of the generic destinationinterface 271 with respect to the destination handler (260-263).

For instance, the SMPP delivery module 260 may be replaced in thewireless Internet gateway 100 with, e.g., another wireless Internetgateway 261, an Internet gateway 262, or a paging terminal 263. Whilethe SMPP delivery module 260, the wireless Internet gateway 261, theInternet gateway 262, and the paging terminal 263 are all shown togetherin FIG. 2, this is for convenience of explanation only. The disclosedembodiment relates to the implementation of only one of the destinationhandlers 260-263 in any one wireless Internet gateway 100.

FIG. 3 shows the monitoring and control of the status of a wirelessInternet gateway 100 in accordance with the principles of the presentinvention using a Simple Network Management Protocol (SNMP) manager 600.

In particular, as shown in FIG. 3, SNMP acces to the wireless Internetgateway 100 may occur through Management Information Base (MIB) objects.The SNMP access can be considered to occur in three levels ofabstraction: the top level 3 is the SNMP management console 600, themiddle layer 2 of abstraction includes the SNMP agent 610, and thebottom layer 1 of abstraction includes the wireless Internet gateway 100and inserted RMI objects.

When allowing direct communications between wireless devices andapplication servers, the relevant application server 110 binds to thewireless Internet gateway 100 and receives messages to and from thewireless device(s). These messages aren't queued but may be directlyrelayed from the wireless Internet gateway 100 to the SMSC 120 and thewireless device when they are received.

The status of the wireless Internet gateway 100 can be controlled andmonitored by the Simple Network Management Protocol (SNMP) manager 600.For instance, the SNMP management console 600 may initiate a statusinquiry. The SNMP agent 610 inserts a query status RMI object into thewireless Internet gateway 100, and the relevant status in the wirelessInternet gateway 100 is obtained.

The wireless Internet gateway 100 may communicate with the SNMP agent610 of an appropriate application server 110 b via an RMI interface. TheSNMP agent 610 of the application server 110b in turn communicates tothe SNMP Management Console 600. Using this facility, the wirelessInternet gateway 100 may essentially become an SNMP device, and thus canbe remotely monitored and managed, e.g., from the SNMP managementconsole 600 or remote scripts and programs.

Using SNMP management, the number of active SMPP links can be seen, thelast error examined and other configuration changes made. In this way,the wireless Internet gateway 100 can be remotely reset if necessary ordesired.

SNMP access to the wireless Internet gateway 100 may occur usingManagement Information Base (MIB) objects. Each MIB object defines anitem to monitor or control. The MIB's may in turn be translated intoJava code using a conventional SNMP development package. The generatedJava code gathers an internal value of the wireless Internet gateway100, and makes it visible to the SNMP agent 610. The code generated froman MIB object can also perform actions within the wireless Internetgateway 100 and in so doing, affect the state of the wireless Internetgateway 100 as desired.

The SNMP agent 610 communicates using RMI protocol. Services requiringSNMP access preferably use methods defined by the SNMP agent 610, whichin turn communicates with the SNMP management console 600 using SNMPprotocol.

SNMP traps, which reflect error or alert conditions in the wirelessInternet gateway 100, go through the SNMP agent 610 for display on theSNMP management console 600. Remote processes and scripts may alsomonitor these traps.

Scripts and separate processes can talk SNMP remotely with the wirelessInternet gateway 100. The code generated from the MIB's provides theinterface to do this. This allows other monitoring processes to watchthe wireless Internet gateway 100 and, for example, send notificationsto an administrator if any problems occur. They send commands andconfiguration information as necessary also.

FIG. 4 shows exemplary log and configuration files utilized by awireless Internet gateway, in accordance with the principles of thepresent invention.

In particular, as shown in FIG. 4, the wireless Internet gateway 100 maymaintain message logs of its activity for local or remote monitoring.For instance, plain-text files may be made available to be accessed andviewed. As an example of a plain-text file, a message log may beaccessed with a text viewer 800, e.g., a web page server using a LogViewJava servlet running on the host machine implementing the API of thewireless Internet gateway 100.

There are several files to which the text viewer 800 may provide access(e.g., read-only access). As shown in FIG. 4, they may comprise asystems log 810, an accounting log 830, a STDOUT log 850, and a STDERRlog 820.

The text viewer 800 can also show a configuration file 840 for thewireless Internet gateway 100. The systems log file 810 may containmessages describing the operation of the wireless Internet gateway 100.

Messages typically have a severity level associated with them, e.g., aseverity level 1 indicating a serious error and severity levels 2through 9 being of decreasing severity. The text viewer 800 preferablyfilters and/or presents the messages based on their severity level.

The accounting log file 830 may contain a list of the messages sentthrough the wireless Internet gateway 100.

The STDERR log 820 and STDOUT log files 850 may contain messages fromthe API software of the wireless Internet gateway 100, and may be usedby the administrator of the wireless Internet gateway 100 to determineif any program errors have occurred.

The wireless Internet gateway 100 can be statically configured atinitialization time via the gateway configuration file 840.

Table 1 shows an exemplary sample gateway configuration file 840 for awireless Internet gateway 100, in accordance with the principles of thepresent invention.

The gateway configuration file 840 may set such parameters as, e.g., themaximum message length, message transmission timeout, host names, and/orwireless device access number ranges. The gateway configuration file 840may be a plain-text file which is created/modified with a standard texteditor. The gateway configuration file 840 may contain configurationparameters in a tagged data format. Tagged data format is a descriptiveterm describing the configuration item and the item's value.

One parameter that may be configured in the gateway configuration file840 is a spam filter. Spam is unsolicited and unwelcome E-mail. Byreading the spam configuration values as defined by appropriate spamparameters, the wireless Internet gateway 100 can prevent too manymessages from the same sender going to a particular recipient. Also, thewireless Internet gateway 100 can prevent one sender from sending anexcessive number of messages via the wireless Internet gateway 100.

The wireless Internet gateway 100 may keep track of the number ofmessages a sender has sent and/or how many messages a particularrecipient has received.

If the configuration values are exceeded, a message may be sent to thesystems log 810. This provides, among other things, the ability for awireless carrier to base a subscriber rate based on their ownspecifically monitored use of the Internet (e.g., on a number ofmessages sent and/or received via a wireless Internet gateway 100).

Support for internationalization may be included in the wirelessInternet gateway 100. For instance, responses to users can be configuredto reflect the language in the local region where the wireless Internetgateway 100 has been deployed. Internationalization may be implementedusing Java property files and its internationalization APIs.

As an example, to provide internationalization, the gatewayconfiguration file 840 might contain the following two lines:

LocaleLanguage es # ISO 639 language code LocaleCountry AR # ISO 3177country code

This demonstrates how an administrator may specify which language and/orin which country the wireless Internet gateway 100 will operate. If thelocale parameters are not present in the gateway configuration file 840,the language and country may default, e.g., to English (en) and theUnited States (US), respectively.

The property files may include a corresponding es_AR string in the filename. For example, the SMPP.properties file (which implies en_US) maycontain a number of possible error messages, e.g.:

# ERROR/STATUS CODE DESCRIPTIONS

-   ErrorCode0=Message accepted-   ErrorCode1=Message too long-   ErrorCode2=Internal Error: SMPP Command too long-   ErrorCode3=Internal Error: Invalid SMPP Command ID

The SMPP_es_AR.properties file may include the following correspondinglines:

# ERROR/STATUS CODE DESCRIPTIONS

-   ErrorCode0=Mensaje aceptado-   ErrorCode1=Su mensaje es demasiado largo-   ErrorCode2=Longitud de comando no válida-   ErrorCode3=Identificación de comando no válida

User parameters may be restricted. For instance, to control whichparameters a customer can configure, the wireless Internet gateway 100may work with an encrypted license. The license may encapsulate avariety of parameters associated with a customer's license agreement.

In particular, a third-party license generator may create a customerlicense in the form of an encrypted file containing all pertinentlicense information. This may be accomplished by running the licensegenerator and providing it with the allowed configuration. An encryptedlicense file, e.g., smscgw.lic, may be deployed with the wirelessInternet gateway 100. Thus, when the wireless Internet gateway 100 isstarted, it reads the license file and as it performs its functions, itmay query the license properties and behave accordingly.

FIG. 5 shows the provisioning capabilities of a wireless Internetgateway 100 via a web page or from a remote wireless device using anexternal SMPP(P) application server 1000, in accordance with theprinciples of the present invention.

In particular, as shown in FIG. 5, SMPP Provisioning Protocol, alsoknown as the SMPP(P) protocol, allows for the creation, modification anddeletion of subscribers, paging subscribers and distribution listswithin the SMSC 120. The wireless Internet gateway 100 may haveprovisioning capabilities provided via a web page on an appropriate PCor other computer device operating a web browser 1030. The web browser1030 utilizes HTTP protocol messages to an appropriate HTTP server 110a, which in turn communicates with the SMPP(P) application server 1000,e.g., via the Internet 190 or an Intranet.

Alternatively, provisioning for the wireless Internet gateway 100 may beprovided from a remote wireless device such as a Wireless AccessProtocol (WAP) phone 1020.

SMPP may be implemented as another application server 110 using the RMIprotocol as shown in FIG. 5 (or internally as shown in FIG. 2). In anycase, the wireless Internet gateway 100 handles transmission and receiptof SMPP(P) messages with the SMSC 120.

The wireless Internet gateway 100 may include one or more integratedcommunication interfaces, e.g., simple mail transfer protocol (SMTP).

FIG. 6 shows exemplary wireless Internet gateway support of a simplemail transfer protocol (SMTP) mail server, in accordance with theprinciples of the present invention.

In particular, as shown in FIG. 6, a wireless Internet gateway 100including SMTP support includes an integrated SMTP mail server 300connected to the Internet 190. E-mail is passed between the integratedSMTP mail server 300 and the SMPP application programming interface 260of the wireless Internet gateway 100.

The SMTP mail server 300 shown in FIG. 7 may insert messages into themessage queue 205 shown in FIG. 2 directly, without the need to utilizeRMI techniques. However, the wireless Internet gateway 100 mayalternatively or additionally communicate using RMI techniques with aparticular application server 100 c which provides e-mail services.

The integration of the SMTP mail server 300 into a wireless Internetgateway 100 allows mail from standard E-mail clients 242 to be sent tothe wireless Internet gateway 100 and ultimately on to wireless devicesserviced by the SMSC 120 in communication with the wireless Internetgateway 100. The SMTP mail server 300 translates messages between SMTPprotocol messages between the wireless Internet gateway 100 and theInternet 190, and SMPP protocol messages between the wireless Internetgateway 100 and the SMSC 120.

The SMTP mail server 300 may be part of the software constituting theapplication programming interface (API) of the wireless Internet gateway100, and preferably otherwise operates as a standard mail server.

In operation, the disclosed SMTP mail server 300 of the wirelessInternet gateway 100 monitors a mail port defined by a configurationfile for the wireless Internet gateway 100, and answers mail requestssent from E-mail clients 242. When an E-mail client 242 sends an E-mailmessage to a wireless device serviced by the SMSC 120, the wirelessInternet gateway 100 receives and queues the E-mail messagefl. Then, thewireless Internet gateway 100 sends the E-mail message to the relevantSMSC 120 using SMPP protocol for transmission to the relevant wirelesshandset in the wireless network 130.

The API of the wireless Internet gateway 100 may also ensure that anE-mail message is truncated if necessary, e.g., if the E-mail message islonger than the currently configured maximum message length. Inaddition, or alternatively, the API of the wireless Internet gateway 100may be configured to break long E-mail messages up into several separatetransmissions for transmission to the SMSC 120 and on to the relevantwireless handset in the wireless network 130.

A user of a mobile device in a wireless network 130 including a wirelessInternet gateway 100 in accordance with the principles of the presentinvention may initiate an E-mail message from their mobile device, andmay receive a receipt therefore indicating that the destination hasreceived and/or reviewed the E-mail message. In such a case, thewireless Internet gateway 100 will send the mobile originated E-mailmessage to an appropriate E-mail server 110 c using RMI (if external tothe wireless Internet gateway 100), and that E-mail server 110 c willaccomplish delivery of the E-mail message.

In the disclosed embodiment, communications between wireless devices andthe SMSC 120 of a wireless network 130 and the wireless Internet gateway100 utilize messages conforming to standard SMPP v3.3 protocols formobile terminated (MT) communications, with the following exceptions inthe case of mobile originated (MO) communications:

-   -   1. The registered_delivery flag is utilized.    -   2. A “$R” trigger exists in every message body indicating a        source-unique tracking number.    -   3. User responses are contained within the stat component of the        standard delivery receipt.    -   4. Message types are identified by the esm_class field.

Alpha-numeric E-mail may be embedded in the source_addr field for ashort message. In particular, E-mail addresses can be embedded insource_addr field for submit_sm messages, and in the destination_addrfor deliver_sm messages. Such embedding provides an indication as towhere the particular E-mail comes from, and where it should go. Theconventional 20 character (or other length) limitation may be extendedas necessary or desired for these particular fields.

FIGS. 8A and 8B show exemplary scenarios describing interaction betweena mobile device, its SMSC 120, and a wireless Internet gateway 100 as anSMPP client, in accordance with the principles of the present invention.In these exemplary scenarios, an E-mail message is communicated.

Certain aspects of communications between mobile devices and thewireless Internet gateway are shown and described in co-owned U.S. Appl.No. 60/198,108, filed Apr. 18, 2000 by Richard A. Smith and JohannaWilson, entitled “Short Messaging Service Center SMPP to HTTP InternetCommunications”, the entirety of which is expressly incorporated hereinby reference.

FIG. 7A shows an exemplary message flow when a wireless Internet gateway100 originates a short message requiring SME delivery acknowledgementand a response from the recipient, in accordance with the principles ofthe present invention.

In particular, as shown in FIG. 7A, a wireless Internet gateway 100sends a message to a mobile wireless handset device, and requests twotypes of delivery feedback: (1) acknowledgement of when the user readsthe message; and (2) a response code from the user.

The message is derived from an E-mail message received from the Internetto an address, e.g., “MIN@[gateway]”. The wireless Internet gateway 100supplies the sender's E-mail address so that it may be processed by themobile wireless handset device.

Note that in the preferred embodiment, the wireless Internet gateway 100will not request delivery feedback of any kind when submitting shortmessages for incoming E-mail.

In step 1 of FIG. 7A, the wireless Internet gateway generates aSUBMIT_SM message with key elements populated in the following way:

-   -   service_type: page    -   source_addr: [sender's E-mail address]    -   destination_addr: handset's MIN    -   registered_delivery_flag: 12 (bits 2&3 enabled)    -   short_message: $R[13-bit gateway id]$M[E-mail body]

If the registered_delivery_flag is 0 or 1, then the $R value is notrequired.

In step 2 of FIG. 7A, the SMSC sends a standard submit_sm_responsemessage. The response is matched to the submit_sm by sequence number.The body contains the SMSC-generated tracking number.

In step 3 of FIG. 7A, the SMSC delivers the message to the mobile devicein compliance with 637A.

In step 4 of FIG. 7A, the user of the mobile device reads the message. ADelivery Ack is sent by the mobile device through the network to theSMSC.

In step 5 of FIG. 7A, the SMSC generates a Deliver_SM message to thewireless Internet gateway using a Delivery Receipt template. The “stat”portion of the delivery receipt may use identical values as the normalSMSC Delivery Receipt. In the given example, the value for the esm_classis 8 (bit 3 enabled).

The “text” portion of the delivery receipt will also include the $Rtrigger prior to any text, thus indicating the MO tracking number. Thistracking number will be the same that was assigned by the originalsubmit_sm in step 1. A $M trigger following the $R value contains thefirst 20 characters of the original short message.

As an example, the “text” portion may contain “$R9998$MThis was a MOtest”.

In step 6 of FIG. 7A, the user of the mobile device responds to thereceived short message with a keypress or other action which results inthe generation of, e.g., a value of “3”.

In step 7 of FIG. 7A, the SMSC generates a Deliver_SM message to thewireless Internet gateway again using the Delivery Receipt template. Inthe given example, the “stat” portion of the message contains theresponse code. e.g., “3”. The esm_class value is “16” (bit 4 enabled).

As with step 5, the “text” portion of the delivery receipt is in theformat $R[ref #]$M[message text]

The delivery feedback may be dependent on the registered_delivery_flagvalue. For example, a value of 8 (bit 3 enabled) may cause only the UserResponse code to have been returned.

FIG. 7B shows a mobile device originating a message requiring SMEdelivery acknowledgement and a user response as it interacts with awireless Internet gateway, in accordance with the principles of thepresent invention.

In particular, as shown in FIG. 7B, a mobile device originates a messageto the wireless Internet gateway, requesting both delivery receipt and aresponse code from the recipient. The short message could be submittedto an E-mail address and the mobile device can request a deliveryreceipt to ensure that the short message was delivered successfully.

If desired, User Response codes need not be supported for mobileoriginated E-mails.

In step 1 of FIG. 7B, the mobile device generates a mobile originatedshort message addressed to a particular E-mail address.

In step 2 of FIG. 7B, the SMSC parses the destination address,determines that it is formatted like an E-mail address, and forwards itto the wireless Internet gateway over the SMPP (rx) connection.

A Deliver_SM message is generated with the following key field values:

-   -   service_type: page    -   source_addr: [handset's MIN]    -   destination_addr: [destination E-mail address]    -   registered_delivery_flag: 12 (bits 2&3 enabled)    -   short_message: $R[new ref id]$M[message]

The [new ref id] may be generated by the mobile device and forwarded bythe SMSC through the $R trigger.

In step 3 of FIG. 7B the wireless Internet gateway generates adeliver_sm_resp code. This contains the internal tracking number of thewireless Internet gateway within the message body. The sequence numbermatches that of the Deliver_SM.

In step 4 of FIG. 7B, the wireless Internet gateway has ‘read’ the shortmessage, and generates a delivery receipt to the SMSC. For example, itwould generate a delivery receipt showing the result of an attempt toforward the E-mail message.

The delivery receipt may be formatted as shown and described withrespect to step 5 in FIG. 7A. In particular, the “stat” field containsthe status code and the “text” field contains the $R[ref id]$M[message]content. The Reference ID value is the same as received from thedeliver_sm in step 2 of FIG. 7B. The esm_ class is 8.

In step 5 of FIG. 7B, the delivery message is forwarded to the mobiledevice.

In step 6 of FIG. 7B, if the wireless Internet gateway were to provide aresponse code, it would generate a delivery receipt with the responsecode within the “stat” element and the esm_class=16. This would bepassed through a submit_sm message to the SMSC. Of course, deliveryreceipt need not be implemented in any particular application.

In step 7 of FIG. 7B, the SMSC will forward the response code to themobile device.

FIG. 8 shows a redundant configuration for wireless Internet gateways100, in accordance with the principles of the present invention.

In particular, as shown in FIG. 8, a wireless Internet gateway 100 inaccordance with the principles of the present invention can beconfigured to run redundantly on separate hardware platforms. In thisenvironment, separate wireless Internet gateway servers 10, 20 can beconfigured to share the workload of client processing and/or serve ashot-standby servers.

A first wireless Internet gateway 10 provides communication between anSMSC 120 and the Internet 190. Similarly, a second wireless Internetgateway 20 provides communication between the SMSC 120 and the Internet190. A network redirector device 1120 evenly distributes incomingtraffic between the first wireless Internet gateway 10 and the secondwireless Internet gateway 20.

Each of the first and second wireless Internet gateways 10, 20 are givenaccess to separate databases 1110, 1112 in which they each maintaininformation about their respective messages. The first wireless Internetgateway 10 can be designated as the primary device, with thecorresponding database 1110 designated as the primary database. Thesecond wireless Internet gateway 20 and corresponding database 1112 canbe designated as secondary devices.

As messages are processed on one wireless Internet gateway 10, 20,appropriate database software may synchronize information with the otherdatabase(s).

Upon failure of a primary wireless Internet gateway 10, the networkredirector 1120 transparently routes the failed wireless Internetgateway's traffic to the remaining wireless Internet gateway(s) 20. Inthis way, any pending messages from the failed wireless Internet gateway10 will not be lost because they will have been sent not only to thedatabase 1110 corresponding to the failed wireless Internet gateway 10,but also to the other database(s) 1112 corresponding to the secondary,backup wireless Internet gateway(s) 20.

Redundant architecture such as that shown in FIG. 8 includes primarywireless Internet gateway databases 1110, and secondary wirelessInternet gateway databases 1112 maintaining information about shortmessages.

The first and second wireless Internet gateways 10, 20 may ordinarilyshare the load imposed upon them. However, if one wireless Internetgateway 10, 20 should fail, its messages may be automatically redirectedby the network redirector 1120 and then handled by one of the redundantwireless Internet gateways 20.

The wireless Internet gateway 100 provides an abstracted mechanism forsending mobile terminated (MT) messages, where the MT delivery protocolis encapsulated from other GW software components. Using the genericdestination interface 271, two-way messaging may be implemented tosupport any relevant protocol, e.g., SMPP, Reflex, SNPP, SMTP, and otherprotocols.

Two-way messaging may be enabled and disabled in the same way that theRemoteSMPP and other pieces are controlled. The configuration file 840may define whether or not two-way messaging is enabled, and/or anencrypted license file may also include permission to enable two-waymessaging.

FIGS. 9A to 9C and 10A to 10C show an exemplary software modulehierarchy and relationships for a wireless Internet gateway 100implementing two-way messaging, in accordance with the principles of thepresent invention.

In particular, the exemplary two-way messaging software packagehierarchy may be implemented, e.g., with a number of key components:

-   -   TwoWayMessage 708, which is an independent Message class for        2-way communication.    -   ImessageReceiver 706, which classifies objects able to receive        TwoWayMessages.    -   ImessageSender 704, which classifies objects able to send        TwoWayMessages.

Registrar 702, which facilitates connecting receivers and senders.

A Config class 712 may be configured to interact with the Registrar 702at runtime in order to dynamically assign sender/receiver relationships.A sender can have any number of receivers.

Sub-packages define particular aspects of the 2-way capabilities. Forexample, an ‘smtp’ sub-package 720 defines a Sender and Receiver thatknow how to send and receive SMTP 2Way Messages. The TwoWayMessage class708 is abstract; subclasses provide details specific to particularprotocols being used. This allows the handlers to set and retrieveprotocol-specific parameters, while still allowing the messages to betreated in a generic manner.

A ‘remote’ package 722 provides a mechanism for remote RMI objects toregister as 2-way message receivers and senders. This approach is akinto the RemoteSMPP module, where external apps can register as SMPPlisteners as well as originate SMPP messages into the wireless Internetgateway. However, this approach is preferable because it is not tied toa particular protocol.

Protocol handlers within the wireless Internet gateway 100, such as theSMTP handler 240 (FIG. 2) and the SMPP Delivery module 260 will interactwith the two-way software modules. Thus, if a generic two-way feature isenabled in the config file 840, then the SMTP and SMPP listeners willalso forward (select) traffic through the two-way module to be deliveredto potential listeners.

The API software of the wireless Internet gateway 100 preferably allowsobjects both within and external to the wireless Internet gateway 100 toreceive and send messages in a protocol independent manner.

Integrating listeners and senders can be simplified and configurable atruntime through the use of the configuration file 840. This isespecially true of external applications that wish to register alisteners for particular message senders.

The wireless Internet gateway 100 preferably gracefully handles‘disconnected’ Remote applications. If an external application isstopped or re-started, the wireless Internet gateway 100 preferably logsan error and cleans up all internal references occupied by the remoteapplication.

Using two-way messaging, a Mobile Terminated Receiver object may be madeavailable in the wireless Internet gateway 100 by which messages can bedelivered into the message queue 205.

FIG. 9B illustrates how messages would flow in an SMTP environment.

In particular, as shown in FIG. 9B, a 2WaySMTPListenerAgent 730implements an IMessageSender interface 704. It is therefore able to sendmessages to whatever ImessageReceivers 706 might want to register withit. The 2WaySMTPListenerAgent 730 would be optionally created by atcs.ain.smsgw.SMTPSession class. Whenever SMTP messages are sent to aparticular address, they are sent to the 2WaySMTPListenerAgent 730rather than delivered into the message queue 205.

The 2WaySMTPListenerAgent 730 then forwards the message (step 2.1) toeach IMessageReceiver object 706 that had registered with it through theaddReceiver( ) function in step 1.1. When the 2WaySMTPListenerAgent 730tells the receiver to process the message, it includes three parameters:itself (the Sender), a “Return Path” IMessageReceiver object 706 throughwhich responses can be made, and finally the message itself.

In this example, the message is sent to ‘App’ 733, which implements boththe sender and receiver interfaces. After App 733 receives and processesthe message, it will want to send a response back. Reponses must bereturned to the ‘return path’ IMessageReceiver object 706 that wasprovided when the message was received. Since App 733 is also a sender,it can directly send the response message to the return path receiver.

In this case, the SMTPDeliveryAgent 735 is the receiver that had beenspecified. The message is received by the SMTPDeliverAgent 735 (step 3),and then forwarded back to the user.

FIG. 9C illustrates how messages would flow in an RMI scenario.

In particular, RMI is a bit more complicated, but similar in nature. Asshown in FIG. 9C, a Remote2Way object 740 brokers the ‘inside’ and‘outside’ worlds. It ensures that references are cleaned up if theremote client should disconnect or fail. It also helps ensure that thecore classes do not worry about RMI details at all. For every remoteobject that binds through the Remote2Way 740, a local ‘proxy’ object iscreated which actually binds to the specified senders and relaysmessages back and forth through the Remote2Way 740.

As indicated previously, the Registrar 702 is used to facilitateconnecting receivers to senders. This can be done by explicitly passingin sender and receiver objects to the registrar 702. However, one canalso assign unique identifies to senders and receivers, and thenreference either by their ID rather then by the actual object. Thislatter approach is useful for objects that need to be connected atruntime, as defined by a configuration file 840.

In the above scenario, the Config object 712 assigns an ID to a senderobject. A remote app 741 then binds to the wireless Internet gateway'sRemote2Way interface 740 and requests to be a listener for the senderwith the same given ID. Remote2Way 740 creates a ProxyReceiver 742 forthe remote object, and then uses the Registrar 702 to register theproxyReceiver 742 as a listener to the Sender with the specified ID.

When the Sender sends a message, it will be delivered to theproxyReceiver 742, which forwards it to Remote2Way 740, which then goesto the remote object 741. The remote object 741 can then reply with amessage, which will be sent via Remote2Way 740 to the ProxyReceiver 742,which will ensure that it gets delivered to the ReturnPath Receiver thatwas originally specified when the Sender sent the message.

Remote2Way 740 also provides methods for originating new messagesdirectly to senders. So, the remote app 741 can do more than just reply.

A wireless Internet gateway 100 in accordance with the principles of thepresent invention is particularly useful for wireless carriers and/orInternet service providers (ISPs). For instance, a wireless Internetgateway 100 can also be used within the Enterprise and ISP markets toprovide a single point of entry for short message system (SMS) deliveryto multiple wireless carriers.

While the invention has been described with reference to the exemplaryembodiments thereof, those skilled in the art will be able to makevarious modifications to the described embodiments of the inventionwithout departing from the true spirit and scope of the invention.

1. A wireless Internet gateway, comprising: at least one physicalapplication server interface to interface a physical wireless Internetgateway with at least one physical application server; and a Java RemoteMethod Invocation (RMI) handler to communicate with said at least onephysical application server with RMI; wherein said at least one physicalapplication server provides a communication path from said physicalwireless Internet gateway to a physical Internet Protocol (IP) networkusing a protocol supported by said at least one physical applicationserver independent of said RMI.
 2. The wireless Internet gatewayaccording to claim 1, further comprising: a destination handlerutilizing an SMPP protocol.
 3. The wireless Internet gateway accordingto claim 1, further comprising: a destination handler utilizing an HTTPprotocol.
 4. The wireless Internet gateway according to claim 1, furthercomprising: a destination handler utilizing an TNPP protocol.
 5. Thewireless Internet gateway according to claim 1, further comprising: anSMPP link proxy module providing direct communication between said atleast one physical application server and a destination handler.
 6. Thewireless Internet gateway according to claim 1, further comprising: amessage queue; wherein messages contained in RMI objects in a messagehandler are queued for transmission to a physical destination device insaid message queue.
 7. The wireless Internet gateway according to claim1, further comprising: a generic destination interface between a messagequeue and a destination handler.
 8. The wireless Internet gatewayaccording to claim 1, further comprising: a physical chat server incommunication with said RMI handler.
 9. The wireless Internet gatewayaccording to claim 1, further comprising: a physical e-mail server incommunication with said RMI handler.
 10. The wireless Internet gatewayaccording to claim 1, further comprising: an SMTP handler incommunication with said RMI handler.
 11. A wireless Internet gatewaymethod, comprising: interfacing with at least one physical applicationserver; and providing a Java Remote Method Invocation (RMI) handler tocommunicate with said at least one physical application server with RMI;wherein said at least one physical application server provides acommunication path to a physical Internet Protocol (IP) network using aprotocol supported by said at least one physical application serverindependent of said RMI.
 12. The wireless Internet gateway methodaccording to claim 11, further comprising: monitoring short messagesrelating to a particular physical destination subscriber device forbilling purposes based on a number of short messages communicated withsaid physical destination subscriber device.
 13. The wireless Internetgateway method according to claim 11, further comprises: passing a shortmessage to a generic protocol destination interface; and passing saidshort message from said generic protocol destination interface to adestination handler.
 14. The wireless Internet gateway method accordingto claim 13, further comprising: adding a parameter to said shortmessage in a physical wireless Internet gateway.
 15. The wirelessInternet gateway method according to claim 14, wherein said addedparameter comprises: a message priority level.
 16. The wireless Internetgateway method according to claim 14, wherein said added parametercomprises: a callback number.
 17. The wireless Internet gateway methodaccording to claim 14, wherein said added parameter comprises: avalidity time.
 18. The wireless Internet gateway method according toclaim 14, wherein said added parameter comprises: a delivery receiptrequest.
 19. The wireless Internet gateway method according to claim 11,further comprising: logging details about a short message in a messagesdatabase.
 20. The wireless Internet gateway method according to claim11, further comprising: storing contents of a short message in a messagecache.
 21. Apparatus for providing communications between a wirelessnetwork and the Internet, comprising: means for interfacing with atleast one physical application server; and means for providing a JavaRemote Method Invocation (RMI) handler to communicate with said at leastone physical application server with RMI; wherein said at least onephysical application server provides a communication path to an InternetProtocol (IP) network using a protocol supported by said at least onephysical application server independent of said RMI.
 22. The apparatusfor providing communications between a wireless network and the Internetaccording to claim 21, further comprising: means for passing a shortmessage to a generic protocol destination interface; and means forpassing said short message from said generic protocol destination tosaid destination handler.
 23. The apparatus for providing communicationsbetween a wireless network and the Internet according to claim 21,further comprising: means for logging details about a short message in amessages database.
 24. The apparatus for providing communicationsbetween a wireless network and the Internet according to claim 21,further comprising: means for storing contents of a short message in amessage cache.
 25. The apparatus for providing communications between awireless network and the Internet according to claim 21, furthercomprising: means for receiving an e-mail message from an SMTP handler;and means for passing said e-mail message to said destination handlerfor transmission to said physical wireless network.
 26. The apparatusfor providing communications between a wireless network and the Internetaccording to claim 21, further comprising: means for adding a parameterto a short message in a physical wireless Internet gateway.
 27. Theapparatus for providing communications between a wireless network andthe Internet according to claim 26, wherein said means for adding aparameter adds at least one of: a message priority level; a callbacknumber; a validity time; and a delivery receipt request.